import java.io.ObjectInputStream.GetField;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import util.GCOBUtil;
import negocio.GeradorArquivo;
import entidades.Chamadas;
import entidades.DadosEntrada;
import entidades.Header;
import entidades.NomeArquivo;
import entidades.Trailler;


public class Teste {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//String dirSaida = "C:/Documents and Settings/Jonathan/Desktop/jj/";
		//String dirSaida = "C:/Users/jonathan.jose.silva/Desktop/Automacao/jj/";
		DadosEntrada dadosEntrada = new DadosEntrada(); 
		// abri arquivo
		String arquivo;
		try {
			arquivo = GCOBUtil.recuperarTextoArquivo("GCOB_CONFIG.txt");			

			dadosEntrada = GCOBUtil.dadosConexao(arquivo);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		String dirSaida = dadosEntrada.getDirSaida();
		String FLAG_FIXO_MOVEL_NUM_B = dadosEntrada.getFlag_fixo_movel_num_b();
		String EOT_ORIGEM = dadosEntrada.getEot_origem();//"411";//TIM SP
		String EOT_DESTINO = dadosEntrada.getEot_destino();//"001";//Embratel
		String DT_INICIO_CHAMADAS = dadosEntrada.getDt_inicio_chamadas();//"10012013";//sGCOBUtil.data("ddMMyyyy");
		int QTD_CHAMADAS = dadosEntrada.getQtd_chamadas();//10;
		String COD_NATUREZA = dadosEntrada.getCod_natureza();//"510";
		String CSP = dadosEntrada.getCsp();//"21";
		String NUM_A = dadosEntrada.getNum_A();//"11999999999";
		String CNL_A = dadosEntrada.getCnl_A();//"00011";
		String NUM_B = dadosEntrada.getNum_B();//"11999999999";
		String CNL_B = dadosEntrada.getCnl_B();//"00011";
		double VLR_CHAMADA_CENTS = dadosEntrada.getVlr_chamada_cents();//10.1;
		int INCREMENTO_DATA_MIN = dadosEntrada.getIncrementa_data_min();//1;
		String COD_PAIS = dadosEntrada.getCod_pais();//"   ";//3
		String DEGRAU = dadosEntrada.getDegrau();//"99";
		String PROCESSED = dadosEntrada.getProcessed();
		String NOME_ARQ = dadosEntrada.getNome_arq();
		String COMENTARIOS = dadosEntrada.getComentarios();
		int TIPO_CHAMADA = dadosEntrada.getTipo_chamada();//1;

		
		
		NomeArquivo nomeArquivo = new NomeArquivo();
		Header header =  new Header();
		Chamadas chamadas =  new Chamadas();
		Trailler trailler = new Trailler();
		
		nomeArquivo.setCodigoEOTPrestadoraOrigemRemessa(EOT_ORIGEM);
		nomeArquivo.setCodigoEOTFilialPrestadoraDestinoRemessa(EOT_DESTINO);
		
		chamadas.setQtdChamadas(QTD_CHAMADAS);
		chamadas.setCodigoNatureza(COD_NATUREZA);
		chamadas.setCodigoEOTFilialPrestadoraOrigem(EOT_ORIGEM);
		chamadas.setCodigoEOTFilialPrestadoraDestino(EOT_DESTINO);
		chamadas.setAssinanteA(NUM_A);// 21 caracters
		chamadas.setCnlOrigem(CNL_A);
		chamadas.setCsp(CSP);
		chamadas.setCodigoPais(COD_PAIS);
		chamadas.setAssinanteB(NUM_B);// 21 caracters
		chamadas.setCnlDestino(CNL_B);
		chamadas.setDataChamada(DT_INICIO_CHAMADAS);
//		chamadas.setHoraChamada("HHMMSS");
//		chamadas.setDuracaoReal("HHMMSS");
//		chamadas.setDuracaoTarifada("MMMMD");
//		chamadas.setGrupoHorario("1");
		chamadas.setDegrau(DEGRAU);
//		chamadas.setCodigoNacionalAreaVisitante("77");
		chamadas.setValor(VLR_CHAMADA_CENTS);
//		chamadas.setCodigoRefaturamento("  ");// 02 caracteres RC, RD, RR
		chamadas.setIncrementarMin(INCREMENTO_DATA_MIN);
		chamadas.setTipoChamada(TIPO_CHAMADA);
		ArrayList<Chamadas> chamadasArray = chamadas.gerachamadas();
				
		header.setCodigoEOTPrestadoraOrigem(EOT_ORIGEM);
		header.setCodigoEOTPrestadoraDestino(EOT_DESTINO);
		header.setDataInicioPeriodoTrafego(chamadasArray.get(0).getDataChamada());//Chamadas menor
		header.setDataFimPeriodoTrafego(chamadasArray.get(chamadasArray.size()-1).getDataChamada());//Chamadas maior
		
		trailler.setQuantidadeChamadas(String.valueOf(QTD_CHAMADAS));
		trailler.setValorTotalChamadas(String.valueOf(chamadas.getValorTotal()));
		
		GeradorArquivo geradorArquivo = new GeradorArquivo();
		geradorArquivo.setNomeArquivo(dirSaida + nomeArquivo.getLinha());
		geradorArquivo.setDadosArquivo(header.getLinha(), chamadas.getLinhas(), trailler.getLinha());
		
		
		
		System.out.println("Arquivo gerado= " + dirSaida + nomeArquivo.getLinha());
		geradorArquivo.gerar();
		
	
	
	
	}
	
	

}
